	.arch armv8-a
	.arch_extension crc
	.arm
	.data
	.section .rodata
	.global e
	.align 4
	.size e, 4
e:
	.word 1076754516
	.text
	.global my_fabs
	.type my_fabs , %function
my_fabs:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L312:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	cmp r10, #0
	cmp r10, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L314
	b .L322
.L314:
	ldr r4, [fp, #-4]
	mov r0, r4
	add sp, sp, #4
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L315
.L315:
	ldr r4, [fp, #-4]
	ldr r5, =0
	sub r6, r5, r4
	mov r0, r6
	add sp, sp, #4
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L318:
	b .L317
.L322:
	b .L315

	.global my_pow
	.type my_pow , %function
my_pow:
	push {r4, r5, r6, r7, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #12
.L323:
	str r0, [fp, #-12]
	str r1, [fp, #-8]
	ldr r10, [fp, #-8]
	cmp r10, #0
	cmp r10, #0
	movlt r4, #1
	movgt r4, #0
	blt .L326
	b .L334
.L326:
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-8]
	ldr r6, =0
	sub r7, r6, r5
	mov r0, r4
	mov r1, r7
	bl my_pow
	mov r4, r0
	ldr r5, =1
	sdiv r6, r5, r4
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r7, r10, fp, lr}
	bx lr
	b .L327
.L327:
	ldr r4, =1
	str r4, [fp, #-4]
	b .L336
.L330:
	b .L329
.L334:
	b .L327
.L336:
	ldr r4, [fp, #-8]
	cmp r4, #0
	bne .L337
	b .L341
.L337:
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, =2
	sdiv r6, r4, r5
	mul r5, r6, r5
	sub r6, r4, r5
.L338:
	ldr r4, [fp, #-4]
	mov r0, r4
	add sp, sp, #12
	pop {r4, r5, r6, r7, r10, fp, lr}
	bx lr
.L341:
	b .L338
.L343:
	ldr r4, [fp, #-4]
	ldr r5, [fp, #-12]
	mul r6, r4, r5
	str r6, [fp, #-4]
	b .L344
.L344:
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-12]
	mul r6, r4, r5
	str r6, [fp, #-12]
	ldr r4, [fp, #-8]
	ldr r5, =2
	sdiv r6, r4, r5
	str r6, [fp, #-8]
	b .L336
.L347:
	b .L346

	.global my_sqrt
	.type my_sqrt , %function
my_sqrt:
	push {r4, r5, r6, r7, r8, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #12
.L349:
	str r0, [fp, #-12]
	ldr r10, [fp, #-12]
	cmp r10, #0
	cmp r10, #100
	movgt r4, #1
	movlt r4, #0
	bgt .L351
	b .L359
.L351:
	ldr r4, [fp, #-12]
	ldr r5, =100
	sdiv r6, r4, r5
	mov r0, r6
	bl my_sqrt
	mov r4, r0
	ldr r5, =10
	mul r6, r5, r4
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
	b .L352
.L352:
	ldr r4, [fp, #-12]
	ldr r5, =8
	sdiv r6, r4, r5
	ldr r4, =0
	add r5, r6, r4
	ldr r4, [fp, #-12]
	ldr r6, =2
	mul r7, r6, r4
	ldr r4, [fp, #-12]
	ldr r6, =4
	add r8, r6, r4
	sdiv r4, r7, r8
	add r6, r5, r4
	str r6, [fp, #-8]
	ldr r4, =10
	str r4, [fp, #-4]
	b .L362
.L355:
	b .L354
.L359:
	b .L352
.L362:
	ldr r4, [fp, #-4]
	cmp r4, #0
	bne .L363
	b .L367
.L363:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-12]
	ldr r6, [fp, #-8]
	sdiv r7, r5, r6
	add r5, r4, r7
	ldr r4, =2
	sdiv r6, r5, r4
	str r6, [fp, #-8]
	ldr r4, [fp, #-4]
	ldr r5, =1
	sub r6, r4, r5
	str r6, [fp, #-4]
	b .L362
.L364:
	ldr r4, [fp, #-8]
	mov r0, r4
	add sp, sp, #12
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L367:
	b .L364

	.global F1
	.type F1 , %function
F1:
	push {r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L369:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	ldr r9, =1
	sdiv r8, r9, r10
	mov r0, r8
	add sp, sp, #4
	pop {r8, r9, r10, fp, lr}
	bx lr

	.global F2
	.type F2 , %function
F2:
	push {r4, r5, r6, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L371:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	ldr r9, [fp, #-4]
	mul r8, r10, r9
	ldr r4, =1
	sub r5, r4, r8
	mov r0, r5
	bl my_sqrt
	mov r4, r0
	ldr r5, =1
	sdiv r6, r5, r4
	mov r0, r6
	add sp, sp, #4
	pop {r4, r5, r6, r8, r9, r10, fp, lr}
	bx lr

	.global simpson
	.type simpson , %function
simpson:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #16
.L373:
	str r0, [fp, #-16]
	str r1, [fp, #-12]
	str r2, [fp, #-8]
	ldr r10, [fp, #-16]
	ldr r9, [fp, #-12]
	ldr r8, [fp, #-16]
	sub r7, r9, r8
	ldr r4, =2
	sdiv r5, r7, r4
	add r4, r10, r5
	str r4, [fp, #-4]
	ldr r4, [fp, #-8]
	cmp r4, #0
	cmp r4, #1
	beq .L378
	b .L386
.L378:
	ldr r4, [fp, #-16]
	mov r0, r4
	bl F1
	mov r4, r0
	ldr r5, [fp, #-4]
	mov r0, r5
	bl F1
	mov r5, r0
	ldr r6, =4
	mul r7, r6, r5
	add r5, r4, r7
	ldr r4, [fp, #-12]
	mov r0, r4
	bl F1
	mov r4, r0
	add r6, r5, r4
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-16]
	sub r7, r4, r5
	mul r4, r6, r7
	ldr r5, =6
	sdiv r6, r4, r5
	mov r0, r6
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
	b .L379
.L379:
	ldr r4, [fp, #-8]
	cmp r4, #0
	cmp r4, #2
	beq .L387
	b .L395
.L382:
	b .L381
.L386:
	b .L379
.L387:
	ldr r4, [fp, #-16]
	mov r0, r4
	bl F2
	mov r4, r0
	ldr r5, [fp, #-4]
	mov r0, r5
	bl F2
	mov r5, r0
	ldr r6, =4
	mul r7, r6, r5
	add r5, r4, r7
	ldr r4, [fp, #-12]
	mov r0, r4
	bl F2
	mov r4, r0
	add r6, r5, r4
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-16]
	sub r7, r4, r5
	mul r4, r6, r7
	ldr r5, =6
	sdiv r6, r4, r5
	mov r0, r6
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
	b .L388
.L388:
	mov r0, #0
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
.L391:
	b .L390
.L395:
	b .L388

	.global asr5
	.type asr5 , %function
asr5:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #32
.L396:
	str r0, [fp, #-32]
	str r1, [fp, #-28]
	str r2, [fp, #-24]
	str r3, [fp, #-20]
	ldr r3, [fp, #36]
	str r3, [fp, #-16]
	ldr r10, [fp, #-32]
	ldr r9, [fp, #-28]
	ldr r8, [fp, #-32]
	sub r7, r9, r8
	ldr r4, =2
	sdiv r5, r7, r4
	add r4, r10, r5
	str r4, [fp, #-12]
	ldr r4, [fp, #-32]
	ldr r5, [fp, #-12]
	ldr r6, [fp, #-16]
	mov r0, r4
	mov r1, r5
	mov r2, r6
	bl simpson
	mov r4, r0
	str r4, [fp, #-8]
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-28]
	ldr r6, [fp, #-16]
	mov r0, r4
	mov r1, r5
	mov r2, r6
	bl simpson
	mov r4, r0
	str r4, [fp, #-4]
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, [fp, #-4]
	cmp r5, #0
	add r6, r4, r5
	ldr r4, [fp, #-20]
	cmp r4, #0
	sub r5, r6, r4
	mov r0, r5
	bl my_fabs
	mov r4, r0
	cmp r4, #0
	ldr r5, [fp, #-24]
	cmp r5, #0
	ldr r6, =15
	mul r7, r6, r5
	cmp r4, r7
	movle r4, #1
	movge r4, #0
	ble .L405
	b .L429
.L405:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	add r6, r4, r5
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	add r7, r4, r5
	ldr r4, [fp, #-20]
	sub r5, r7, r4
	ldr r4, =15
	sdiv r7, r5, r4
	add r4, r6, r7
	mov r0, r4
	add sp, sp, #32
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
	b .L406
.L406:
	ldr r4, [fp, #-32]
	ldr r5, [fp, #-12]
	ldr r6, [fp, #-24]
	ldr r7, =2
	sdiv r8, r6, r7
	ldr r6, [fp, #-8]
	ldr r7, [fp, #-16]
	mov r0, r4
	mov r1, r5
	mov r2, r8
	mov r3, r6
	push {r7}
	bl asr5
	add sp, sp, #4
	mov r4, r0
	ldr r5, [fp, #-12]
	ldr r6, [fp, #-28]
	ldr r7, [fp, #-24]
	ldr r8, =2
	sdiv r9, r7, r8
	ldr r7, [fp, #-4]
	ldr r8, [fp, #-16]
	mov r0, r5
	mov r1, r6
	mov r2, r9
	mov r3, r7
	push {r8}
	bl asr5
	add sp, sp, #4
	mov r5, r0
	add r6, r4, r5
	mov r0, r6
	add sp, sp, #32
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
.L409:
	b .L408
.L413:
	b .L412
.L417:
	b .L416
.L421:
	b .L420
.L425:
	b .L424
.L429:
	b .L406

	.global asr4
	.type asr4 , %function
asr4:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #16
.L430:
	str r0, [fp, #-16]
	str r1, [fp, #-12]
	str r2, [fp, #-8]
	str r3, [fp, #-4]
	ldr r10, [fp, #-16]
	ldr r9, [fp, #-12]
	ldr r8, [fp, #-8]
	ldr r7, [fp, #-16]
	ldr r6, [fp, #-12]
	ldr r5, [fp, #-4]
	mov r0, r7
	mov r1, r6
	mov r2, r5
	bl simpson
	mov r4, r0
	ldr r5, [fp, #-4]
	mov r0, r10
	mov r1, r9
	mov r2, r8
	mov r3, r4
	push {r5}
	bl asr5
	add sp, sp, #4
	mov r4, r0
	mov r0, r4
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr

	.global eee
	.type eee , %function
eee:
	push {r4, r5, r6, r7, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L435:
	str r0, [fp, #-8]
	ldr r10, [fp, #-8]
	cmp r10, #0
	cmp r10, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L437
	b .L445
.L437:
	ldr r4, [fp, #-8]
	ldr r5, =2
	sdiv r6, r4, r5
	mov r0, r6
	bl eee
	mov r4, r0
	str r4, [fp, #-4]
	ldr r4, [fp, #-4]
	ldr r5, [fp, #-4]
	mul r6, r4, r5
	mov r0, r6
	add sp, sp, #8
	pop {r4, r5, r6, r7, r10, fp, lr}
	bx lr
	b .L438
.L438:
	ldr r4, [fp, #-8]
	ldr r5, =1
	add r6, r5, r4
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	mul r7, r4, r5
	ldr r4, =2
	sdiv r5, r7, r4
	add r4, r6, r5
	ldr r5, [fp, #-8]
	mov r0, r5
	mov r1, #3
	bl my_pow
	mov r5, r0
	ldr r6, =6
	sdiv r7, r5, r6
	add r5, r4, r7
	ldr r4, [fp, #-8]
	mov r0, r4
	mov r1, #4
	bl my_pow
	mov r4, r0
	ldr r6, =24
	sdiv r7, r4, r6
	add r4, r5, r7
	ldr r5, [fp, #-8]
	mov r0, r5
	mov r1, #5
	bl my_pow
	mov r5, r0
	ldr r6, =120
	sdiv r7, r5, r6
	add r5, r4, r7
	mov r0, r5
	add sp, sp, #8
	pop {r4, r5, r6, r7, r10, fp, lr}
	bx lr
.L441:
	b .L440
.L445:
	b .L438

	.global my_exp
	.type my_exp , %function
my_exp:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #16
.L447:
	str r0, [fp, #-16]
	ldr r10, [fp, #-16]
	cmp r10, #0
	cmp r10, #0
	movlt r4, #1
	movgt r4, #0
	blt .L449
	b .L457
.L449:
	ldr r4, [fp, #-16]
	ldr r5, =0
	sub r6, r5, r4
	mov r0, r6
	bl my_exp
	mov r4, r0
	ldr r5, =1
	sdiv r6, r5, r4
	mov r0, r6
	add sp, sp, #16
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L450
.L450:
	ldr r4, [fp, #-16]
	str r4, [fp, #-12]
	ldr r4, [fp, #-16]
	ldr r5, [fp, #-12]
	sub r6, r4, r5
	str r6, [fp, #-16]
	ldr r4, addr_e0
	ldr r5, [r4]
	ldr r4, [fp, #-12]
	mov r0, r5
	mov r1, r4
	bl my_pow
	mov r4, r0
	str r4, [fp, #-8]
	ldr r4, [fp, #-16]
	mov r0, r4
	bl eee
	mov r4, r0
	str r4, [fp, #-4]
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	mul r6, r4, r5
	mov r0, r6
	add sp, sp, #16
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L453:
	b .L452
.L457:
	b .L450

	.global my_ln
	.type my_ln , %function
my_ln:
	push {r4, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L461:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	mov r0, #1
	mov r1, r10
	mov r2, #0
	mov r3, #1
	bl asr4
	mov r4, r0
	mov r0, r4
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr

	.global my_log
	.type my_log , %function
my_log:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L463:
	str r0, [fp, #-8]
	str r1, [fp, #-4]
	ldr r10, [fp, #-4]
	mov r0, r10
	bl my_ln
	mov r4, r0
	ldr r5, [fp, #-8]
	mov r0, r5
	bl my_ln
	mov r5, r0
	sdiv r6, r4, r5
	mov r0, r6
	add sp, sp, #8
	pop {r4, r5, r6, r10, fp, lr}
	bx lr

	.global my_powf
	.type my_powf , %function
my_powf:
	push {r4, r5, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L466:
	str r0, [fp, #-8]
	str r1, [fp, #-4]
	ldr r10, [fp, #-4]
	ldr r9, [fp, #-8]
	mov r0, r9
	bl my_ln
	mov r4, r0
	mul r5, r10, r4
	mov r0, r5
	bl my_exp
	mov r4, r0
	mov r0, r4
	add sp, sp, #8
	pop {r4, r5, r9, r10, fp, lr}
	bx lr

	.global main
	.type main , %function
main:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #12
.L469:
	bl getint
	mov r10, r0
	str r10, [fp, #-12]
	b .L471
.L471:
	ldr r4, [fp, #-12]
	cmp r4, #0
	bne .L472
	b .L476
.L472:
	bl getfloat
	mov r4, r0
	str r4, [fp, #-8]
	bl getfloat
	mov r4, r0
	str r4, [fp, #-4]
	ldr r4, [fp, #-8]
	mov r0, r4
	bl my_fabs
	mov r4, r0
	mov r0, r4
	bl putfloat
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	mov r0, r4
	mov r1, #2
	bl my_pow
	mov r4, r0
	mov r0, r4
	bl putfloat
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	mov r0, r4
	bl my_sqrt
	mov r4, r0
	mov r0, r4
	bl putfloat
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	mov r0, r4
	bl my_exp
	mov r4, r0
	mov r0, r4
	bl putfloat
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	cmp r4, #0
	cmp r4, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L480
	b .L489
.L473:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L476:
	b .L473
.L480:
	ldr r4, [fp, #-8]
	mov r0, r4
	bl my_ln
	mov r4, r0
	mov r0, r4
	bl putfloat
	b .L481
.L481:
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	cmp r4, #0
	cmp r4, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L493
	b .L500
.L482:
	mov r0, #45
	bl putch
	b .L481
.L484:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L485:
	b .L484
.L489:
	b .L482
.L490:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	mov r0, r4
	mov r1, r5
	bl my_log
	mov r4, r0
	mov r0, r4
	bl putfloat
	b .L491
.L491:
	mov r0, #32
	bl putch
	ldr r4, [fp, #-8]
	cmp r4, #0
	cmp r4, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L508
	b .L517
.L492:
	mov r0, #45
	bl putch
	b .L491
.L493:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #0
	movgt r4, #1
	movlt r4, #0
	bgt .L490
	b .L507
.L495:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L496:
	b .L495
.L500:
	b .L492
.L502:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L503:
	b .L502
.L507:
	b .L492
.L508:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	mov r0, r4
	mov r1, r5
	bl my_powf
	mov r4, r0
	mov r0, r4
	bl putfloat
	b .L509
.L509:
	mov r0, #10
	bl putch
	ldr r4, [fp, #-12]
	ldr r5, =1
	sub r6, r4, r5
	str r6, [fp, #-12]
	b .L471
.L510:
	mov r0, #45
	bl putch
	b .L509
.L512:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L513:
	b .L512
.L517:
	b .L510

addr_e0:
	.word e
